iT邦幫忙

2023 iThome 鐵人賽

DAY 14
0
Odoo

Odoo 16 入門介紹系列 第 14

action & menuitem 介紹

  • 分享至 

  • xImage
  •  
<!-- 定義動作 -->
<record model="ir.actions.act_window" id="action_view_customer">
    <field name="name">View Customer</field>
    <field name="res_model">res.partner</field>
    <field name="view_mode">form</field>
    <field name="view_id" ref="view_partner_form"/>
</record>

<!-- 定義菜單項目 -->
<menuitem id="menu_customers" name="Customers" parent="base.menu_sales" sequence="10"/>
<menuitem id="menu_customer_list" name="Customer List" parent="menu_customers" action="action_view_customer" sequence="1"/>
  • action 介紹
    • 在 Odoo 中,act_window 是一種動作(action),用來在系統中打開視窗。透過設定不同的屬性,你可以定義這個動作的行為。
    • 以下是一些常見屬性的解釋:
      1. model : 這個屬性固定為 "ir.actions.act_window" ,表示你正在定義一個視窗動作。
      2. id : 這是給動作的獨一無二的標識符,確保不重複。
      3. name : 顯示在系統界面上的動作名稱,讓使用者知道這個動作的用途。
      4. res_model : 指定與動作關聯的資料模型,告訴系統在執行動作時要處理哪種資料。
      5. view_mode : 定義打開視窗時顯示的視圖類型,例如表單或列表。
  • menuitem 介紹
    • menuitem : 這是主選單的標籤,代表著你要創建一個菜單項目。
    • id : 這是你自定義的菜單項目識別符,確保每個菜單項目的 id 都是唯一的,以便於識別。
    • name(名稱):用於顯示菜單項目的文字。如果菜單項目關聯有動作,可以留空,因為此時會使用動作名稱。
    • parent(父級):這是引用父級菜單項目的 XML ID。不包含父級的菜單項目將視為頂級菜單。
    • action(動作):引用要被調用的動作的 XML ID。
    • sequence(排序):用於對兄弟菜單項目進行排序。
    • groups(用戶組):這是一個可選項,指定可訪問該菜單項目的用戶組列表。如果留空,則對所有用戶都可用。

下面介紹 menuitem 的子父關係

在Odoo中,menuitem項目可以分為兩個級別:頂級菜單(父菜單)和子菜單。子菜單是與父菜單相關聯的菜單項目,它們位於父菜單下面,形成層次結構。

以下是如何定義和使用子菜單和父菜單的示例:
創建父菜單(頂級菜單):

<menuitem id="menu_custom_top_level"
  name="我的應用菜單"
  web_icon="my_module,static/description/icon.png"/>
在這個示例中,"我的應用菜單" 是一個頂級菜單,沒有父級菜單。

創建子菜單並將其鏈接到父菜單:

<menuitem id="menu_all_customers"
  parent="menu_custom_top_level"
  action="action_all_customers"
  sequence="10"/>

在這個示例中,"menu_all_customers" 是一個子菜單,它通過 parent 屬性指定了它的父級菜單,即 "menu_custom_top_level"。這樣,子菜單就與父菜單建立了關聯。

通過這種方式,你可以創建一個具有層次結構的菜單系統。當用戶點擊父菜單時,它會展開顯示子菜單項目。這樣可以更好地組織和管理菜單,使用戶能夠輕鬆訪問不同的功能和操作。


上一篇
補充odoo view 常用的使用方法
下一篇
record 的 parameter 介紹
系列文
Odoo 16 入門介紹30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言